In qualità di Affiliato Amazon, iSpazio riceve una commissione dagli acquisti idonei senza alcun costo per voi. (info).
Appena rilasciato un nuovo aggiornamento di SMSd, l’applicazione che consente di cancellare singoli sms anzicchè le intere conversazioni. Questa nuova versione 0.08 ha tante caratteristiche, tra le quali: la nuova possibilità di inviare SMS più lunghi di 160 caratteri, un invio più veloce degli SMS, una barra progressiva di avanzamento che appare quando si sta inviando un messaggio, e in più:
Advertising
- Disponibile la nuova funzione che permette l’invio delle schede “contatti”
- Supporto per la creazione di “modelli” o “gruppi di persone”
- E’ stata fixata la barra di progresso, che talvolta restava bloccata
- I messaggi lunghi non saranno più troncati e riusciranno sempre ad arrivare interamente al destinatario
L’applicazione la trovate nell’installer nella categoria UTILITIES
// Logica completa dello shortcode 'app' function appstore_shortcode_logic($atts, $content = null) { // Attributi di default $atts = shortcode_atts(array( 'id' => '', 'img' => '', 'nome' => '', 'sottotitolo' => '', 'prezzo' => '', 'link' => '', 'store' => 'App Store', 'template' => '', 'inapp' => '', 'background' => '', 'link_icon' => '', ), $atts, 'card'); // Verifica del valore dell'attributo 'stile' $template_class = !empty($atts['template']) ? sanitize_html_class($atts['template']) : ''; // Verifica se il file JSON della cache esiste $cache_dir = '/srv/www/ispazio.net/www/wp-content/plugins/appstore_ispazio/app_cache/'; $cache_file = $cache_dir . "app_" . sanitize_key($atts['id']) . ".json"; // Determina se la cache è valida: JSON esiste, non scaduto E icona principale esiste sul disco $_app_id_check = sanitize_key($atts['id']); $_img_main_path = $cache_dir . "icon250_" . $_app_id_check . ".jpg"; $_cache_valid = file_exists($cache_file) && filesize($cache_file) > 0 && time() - filemtime($cache_file) < 31557600 && file_exists($_img_main_path); if ($_cache_valid) { $json = file_get_contents($cache_file); } else { // Interroga l'API di App Store e scarica il JSON utilizzando cURL $itunes_api_base = "https://itunes.apple.com/lookup?id=" . sanitize_key($atts['id']); $country_list = ['IT', 'US']; // puoi aggiungere altri paesi se vuoi $json = ''; $data = []; foreach ($country_list as $country) { $itunes_api_url = $itunes_api_base . "&country=" . $country; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $itunes_api_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); $json = curl_exec($ch); curl_close($ch); $data = json_decode($json, true); if (!empty($data['results'])) { break; // abbiamo trovato un risultato valido, fermiamo il ciclo } } if (isset($data['results'][0]['artworkUrl100'])) { $original_image_url = $data['results'][0]['artworkUrl100']; $new_image_url = str_replace('100x100bb.jpg', '250x250bb.jpg', $original_image_url); // Scarica e salva l'immagine dell'artwork sul tuo server $image_id = sanitize_key($atts['id']); $image_path = $cache_dir . "icon250_" . $image_id . ".jpg"; file_put_contents($image_path, file_get_contents($new_image_url)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($image_path); // Modifica il JSON con l'URL dell'immagine dell'artwork sul tuo server $data['results'][0]['artworkUrl100'] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_" . $image_id . ".jpg"; // Crea anche versione 140px per template mini (retina 2x per 70x70) $icon140_path = $cache_dir . "icon140_" . $image_id . ".jpg"; if ( ! file_exists( $icon140_path ) && function_exists( 'imagecreatefromjpeg' ) ) { $src_img = @imagecreatefromjpeg( $image_path ); if ( $src_img ) { $dst_img = imagecreatetruecolor( 140, 140 ); imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, 140, 140, imagesx( $src_img ), imagesy( $src_img ) ); imagejpeg( $dst_img, $icon140_path, 85 ); imagedestroy( $src_img ); imagedestroy( $dst_img ); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($icon140_path); } } // Sostituisci anche gli URL delle prime 4 immagini degli screenshot if (isset($data['results'][0]['screenshotUrls'])) { $screenshotUrls = $data['results'][0]['screenshotUrls']; $screenshotUrlsOnServer = array(); for ($i = 0; $i < min(count($screenshotUrls), 4); $i++) { $screenshotUrl = $screenshotUrls[$i]; $screenshotFilename = basename($screenshotUrl); $screenshotSavePath = $cache_dir . "screenshot_" . $image_id . "_" . $i . ".jpg"; // Scarica e salva l'immagine dello screenshot sul tuo server file_put_contents($screenshotSavePath, file_get_contents($screenshotUrl)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($screenshotSavePath); // Modifica il JSON con l'URL dell'immagine dello screenshot sul tuo server $screenshotUrlsOnServer[] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/screenshot_" . $image_id . "_" . $i . ".jpg"; } // Aggiorna il JSON con gli URL delle immagini degli screenshot sul tuo server $data['results'][0]['screenshotUrls'] = $screenshotUrlsOnServer; } } // Salva il JSON nella cache solo se non è vuoto if (!empty($json)) { file_put_contents($cache_file, json_encode($data)); } } // Decodifica il JSON $data = json_decode($json, true); // Se il "nome" non è specificato nell'attributo, usa il trackName dal JSON $nome = isset($atts['nome']) && !empty($atts['nome']) ? $atts['nome'] : ($data['results'][0]['trackName'] ?? 'Scarica da App Store'); // Se il "sottotitolo" non è specificato nell'attributo, usa artistName dal JSON $sottotitolo = isset($atts['sottotitolo']) && !empty($atts['sottotitolo']) ? $atts['sottotitolo'] : ($data['results'][0]['artistName'] ?? ''); // Se il "prezzo" non è specificato nell'attributo, usa il formattedPrice dal JSON $formattedPrice = !empty($data['results'][0]['formattedPrice']) ? $data['results'][0]['formattedPrice'] : null; $prezzo = !empty($atts['prezzo']) ? $atts['prezzo'] : (!empty($formattedPrice) ? $formattedPrice : (!empty(trim($content)) ? trim($content) : 'OTTIENI')); // Se l'URL dell'immagine non è specificato nell'attributo, usa quello dal JSON $hide_image_class = ''; $card_body_style = ''; $container_style = ''; $container_extra_class = ''; if (isset($atts['img']) && trim($atts['img']) === 'scontiamolo') { $img = 'https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_1506946624.jpg'; $container_extra_class = 'scontiamolo-mode'; } elseif (!empty($atts['img'])) { $img = $atts['img']; } else { $img = $data['results'][0]['artworkUrl100'] ?? "https://www.ispazio.net/wp-content/uploads/2022/10/appstore_icon.png"; } // Per template mini usa icon140 (70x70 retina) invece di icon250 if ( $template_class === 'mini' ) { $img = str_replace( 'icon250_', 'icon140_', $img ); } // Genera il link dell'app su App Store $link = !empty($atts['link']) ? $atts['link'] : "https://apps.apple.com/it/app/id" . $atts['id'] . "?platform=iphone"; $link_icon = !empty($atts['link_icon']) ? $atts['link_icon'] : $link; // HTML immagine con o senza effetto rotazione (in base a template) $img_html = ''; if (!empty($img)) { if ($template_class === 'striscia') { $img_html = '
LIVE
LIVE
LIVE
Sai che siamo anche su Telegram? Unisciti al nostro canale iSpazio per ricevere le notifiche oppure Apple Italia per chattare con altri utenti. Scopri i migliori prodotti Tech in sconto su Amazon con il nostro canale OFFERTE iSpazio.



















































































































































































































































Accedi per lasciare un commento:
0 Commenti